package com.lau.dicttranslator.service;

/**
 * 字典服务接口
 */
public interface DictService {
    
    /**
     * 根据字典类型和键值获取标签
     * 
     * @param dictType 字典类型
     * @param dictKey 字典键值
     * @return 字典标签
     */
    String getDictLabel(String dictType, String dictKey);
    
    /**
     * 根据字典类型和键值获取标签（支持动态缓存配置）
     * 
     * @param dictType 字典类型
     * @param dictKey 字典键值
     * @param enableCache 是否启用缓存
     * @param cacheExpire 缓存过期时间（秒）
     * @return 字典标签
     */
    String getDictLabel(String dictType, String dictKey, boolean enableCache, long cacheExpire);
    
    /**
     * 根据枚举类名和键值获取标签
     * 
     * @param enumClassName 枚举类名
     * @param dictKey 字典键值
     * @return 字典标签
     */
    String getEnumLabel(String enumClassName, String dictKey);
    
    /**
     * 根据枚举类名和键值获取标签（支持动态缓存配置）
     * 
     * @param enumClassName 枚举类名
     * @param dictKey 字典键值
     * @param enableCache 是否启用缓存
     * @param cacheExpire 缓存过期时间（秒）
     * @return 字典标签
     */
    String getEnumLabel(String enumClassName, String dictKey, boolean enableCache, long cacheExpire);
    
    /**
     * 清除指定字典类型的缓存
     * 
     * @param dictType 字典类型
     */
    void clearDictCache(String dictType);
    
    /**
     * 清除指定枚举类的缓存
     * 
     * @param enumClassName 枚举类名
     */
    void clearEnumCache(String enumClassName);
    
    /**
     * 清除所有字典相关缓存
     */
    void clearAllCache();
} 